package com.example.webbrowser.Utils;

import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;

/**
 * 自定义的BitmapUtils,实现三级缓存
 */
public class MyBitmapUtils {

    private NetCacheUtils mNetCacheUtils;        //网络缓存
    private LocalCacheUtils mLocalCacheUtils;    //本地缓存
    private MemoryCacheUtils mMemoryCacheUtils;  //内存缓存

    public MyBitmapUtils(Context context) {
        mMemoryCacheUtils = new MemoryCacheUtils();
        mLocalCacheUtils = new LocalCacheUtils(context);
        mNetCacheUtils = new NetCacheUtils(mLocalCacheUtils, mMemoryCacheUtils);
    }

    public Bitmap getBitmap(String url) {
        if(TextUtils.isEmpty(url)){
            return null;
        }
        Bitmap bitmap;
        //内存缓存
        bitmap = mMemoryCacheUtils.getBitmapFromMemory(url);
        if (bitmap != null) {
            return bitmap;
        }
        
        //本地缓存
        bitmap = mLocalCacheUtils.getBitmapFromLocal(url);
        if (bitmap != null) {
            //从本地获取图片后,保存至内存中
            mMemoryCacheUtils.setBitmapToMemory(url, bitmap);
            return bitmap;
        }

        //网络缓存
        bitmap = mNetCacheUtils.getBitmapFromNet(url);
        return bitmap;
    }
}
